#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>

using namespace std;

//最长递归子序列的个数
///一个小的demo算法来计算最大出现的次数
//如果相等，count继续加加
//如果当前的规定的最大值小于比较的数组中的值，更新最大值和count，count = 1；
// 如果小于不用管，只需要一个循环完成我们的需求
class Solution {
public:
    int findNumberOfLIS(vector<int>& nums) {
        int n = nums.size();

        //创建dp表
        vector<int> len(n, 1), count(n, 1);
        int retlen = 1, retcount = 1;

        //填表
        for (int i = 1; i < n; i++)
        {
            for (int j = 0; j < i; j++)
            {
                if (nums[j] < nums[i])
                {
                    if (len[i] == len[j] + 1) count[i] += count[j];
                    else if (len[i] < len[j] + 1) len[i] = len[j] + 1, count[i] = count[j];
                }
            }
            if (retlen == len[i]) retcount += count[i];
            else if (retlen < len[i]) retlen = len[i], retcount = count[i];
        }

        return retcount;
    }
};
int main()
{

	return 0;
}